A vector processor implements an instruction set containing instructions that operate on vectors (i.e., one-dimensional arrays of data). Scalar digital signal processors (DSPs), on the other hand, have instructions that operate on single data items. Vector processors offer improved performance on certain workloads.
Digital processors, such as DSPs and vector processors, often incorporate specialized hardware to perform software operations that are required for math-intensive processing applications, such as addition, multiplication, multiply-accumulate (MAC), and shift-accumulate. A Multiply-Accumulate architecture, for example, recognizes that many common data processing operations involve multiplying two numbers together, adding the resulting value to another value and then accumulating the result. Such basic operations can be efficiently carried out utilizing specialized high-speed multipliers and accumulators.
Existing DSPs and vector processors, however, do not provide specialized instructions to support vector convolution of an input signal by a filter having an impulse response. Increasingly, however, there is a need for vector convolution operations in processors. In the FIR filter domain, for example, convolution processes an input waveform signal and the impulse response of the filter as a function of an applied time lag (delay). A convolution processor typically receives and processes a time shifted input signal and the impulse response of the filter and produces one output value for each time shifted version (each time lag). Such convolution computation can be extensively utilized, for example, in FIR filter applications. For an input sequence length of L and a number of time lags W, the required computation complexity is O(L*W). Because of the large number of calculations required, it is therefore highly desirable to accelerate convolution computation in many applications.
A need therefore exists for digital processors, such as vector processors, having an instruction set that supports a vector convolution function.